/*
 * Copyright (C), 2013, 上海汽车集团股份有限公司
 * FileName: MySQLDialect.java
 * Author:   12010065
 * Date:     2013年10月9日 下午2:03:55
 * Description: //模块目的、功能描述
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.ibm.framework.dal.pagination;

/**
 * 
 * 
 * 功能描述：SQL分页封装，MySQL方言
 * 
 * @author 作者13011806@cn.ibm.com
 * @version 1.0.0
 */
public class MySQLDialect {
    /**
     * 生成sql串，随机获取指定数目的记录
     * 
     * @param sql sql串
     * @param limit 指定记录数目
     * @return 字符串类型的组合结果
     */
    public String getLimitStringForRandom(String sql, int limit) {
        return new StringBuffer(sql.length() + 50).append(sql).append(" ORDER BY RAND() ").append(" limit ")
                .append(limit).toString();
    }

    /**
     * 生成sql串，获取指定数目的记录
     * 
     * @param sql sql串
     * @param offset 偏移量
     * @param limit 指定记录数目
     * @return 字符串类型的组合结果
     */
    public String getLimitString(String sql, int offset, int limit) {
        return new StringBuffer(sql.length() + 20).append(sql).append(" limit ").append(offset).append(",")
                .append(limit).toString();
    }

    /**
     * 生成sql串，获取统计结果
     * 
     * @param sql sql串
     * @return 字符串类型的组合结果
     */
    public String getCountString(String sql) {
        return new StringBuffer(sql.length() + 20).append("select count(1) from( ").append(sql).append(" )").toString();
    }
}
